\appendix

\chapter{Point usage hints}

\index{Usage hint}
It will take time to develop your most comfortable
style of use for \Point, and it will depend on your
own  tastes.     In  this  section  we  give  some
suggestions  for  using  various  \Point\  features.
These are not intended to be prescriptive, but are
ideas about  methods you  can try,  to see  if you
find them  useful.   You will  undoubtedly come up
with other  usage patterns  in addition  to  those
suggested here.

{\em Usage hints can also be found throughout the manual,
especially in Chapter 3.}

\section{Window placement}

This is one of the most important choices you will
make.   Some people like windows that overlap very
little or  not at  all (tiled windows).  You might
prefer having  a full-screen  window with  a half-
screen window  (covering the  lower  half  or  the
right half  of the  screen) on  top of  it.    The
hidden part  of the  full-screen window  is rarely
any trouble  and is  often useful.   The \ptin{/h} and \ptin{/v}
command  line   options  start   \Point\  with  this
configuration.

Another  pattern  is  to  use  mainly  full-screen
windows and  look at  only one  at a time.  If you
have two such windows, you can switch between them
easily with  the \menu{TOPLIST}\index{TOPLIST} menu,
the \ptcom{Bottom window}\index{Bottom window} command,
or the \ptcom{Top/bottom window}\index{Top/bottom window} mouse command.

If you  have three  or more  full-screen  windows,
switch between  them by  using the  \menu{TOPLIST}\index{TOPLIST}  menu,
which lists all the windows from top to bottom and
allows you  to top any of them.  Remember that you
can select  text in  one window, switch to another
window, and  copy (or move) the text with a \ptcom{Copy}\index{Copy}
(or \ptcom{Move}\index{Move})  command.   It is not necessary to see
both windows  simultaneously.    Seeing  only  one
full-screen window  is not always as convenient as
being able  to see  all the  windows, but  it does
make up for the small screen on the PC.

Try the  different \option{initialWindows}\index{initialWindows}
options to see which is best for you.
Also try the ``\ptin{/h}'' and ``\ptin{/v}''
options  to   \Point\  when   you   want   to   have
horizontally   or    vertically   split    windows temporarily.

It is easy to adjust the size of a window from one
of its  corners, with the \ptcom{Stretch window}\index{Stretch window}
command (click the  right mouse  button  on  any  corner).
Resize windows often so they are just right.

Try  positioning   windows  side   by  side   when
comparing two  pieces of  text or copying from one
window to another.  Side by side windows are often
more natural  to use than above and below windows.
The \ptcom{Stretch  window} command  makes  it  easy  to
switch between side by side and above and below.

Suppose  you  want  to  find  the  definition  (or
another use)  of a  procedure.   Try the following method:

\begin{itemize}
	\item   Scroll the  line containing the procedure name to the top
	of the window.
	\item  Select the procedure name.
	\item   Create a new window and position it three or four  lines
	below  the  top  of  the window the procedure name is in.
	\item  Select the procedure name.
	\item  Search for the selection.
\end{itemize}

\section{Some fast methods}

There are  several features  built into \Point\ that
allow  you   to  work  quickly  and  avoid  typing
unnecessary text.   In  this  subsection  we  will
remind you of some of those features.

Try specifying the position of a new window with a
mouse click  which defaults the lower right corner
of the  window to  the lower  right corner  of the
display.

Use the \ptcom{Go back}\index{Go back} command.
It is handy for switching between two places in a window.

Use the  scrap buffer for rearranging text.
Learn to use \ptcom{Exchange with scrap}\index{Exchange with scrap};
it is useful for exchanging words and phrases.

Use the  cursor arrow  keys for small movements of the selection.

When you  are done  with a  file, bottom it rather
than closing  the window.  Often you need it again
soon.   If you  get used to using the \menu{TOPLIST}\index{TOPLIST} menu
to move  between windows, the extra windows on the bottom are no trouble.

Think about  using keyboard  macros  whenever  you
have a repetitive editing task to do.

\section{Copying text}

Use \ptcom{Copy}\index{Copy}  when you  are already  at the text you
want to copy.

Use \ptcom{Duplicate}\index{Duplicate}  to avoid  retyping  strings  that
appear  on   the  screen.    This  is  faster  and
eliminates  the  possibility  of  misspelling  the text.

Use  \ptcom{Duplicate}\index{Duplicate}  when  you  are  copying  several
pieces of  text into  one place.  The advantage of
\ptcom{Duplicate}\index{Duplicate} is  that you do not lose the insertion
point.   \ptcom{Duplicate}\index{Duplicate}  is  especially  useful  when
building up a line from pieces of nearby lines.

Use \ptcom{Copy to scrap}\index{Copy to scrap},
\ptcom{Delete}\index{Delete},
or \ptcom{Redo last edit}\index{Redo last edit} to move
the same text to several places.

A fast  way to duplicate one or more lines of text
is to  select them  (with a triple click) and then
press \key{F4} (duplicate) twice.

To create  more than one copy of a line (or lines)
of text:   select  the text, delete it, and insert
it as many times as needed.

\section{Redo and undo}

If you are not used to \ptcom{Redo last edit}\index{Redo last edit}
and \ptcom{Undo last edit}\index{Undo last edit} commands,
become familiar  with them.
\ptcom{Redo last edit}\index{Redo last edit}
can be used in many text editing situations.
The \ptcom{Undo multiple}\index{Undo multiple}
command  is  useful  for  reversing  a  number  of
changes without having to start completely over.

\section{Searching for strings}

Repeated searches  are easy  if you keep the mouse
cursor over the ``next'' command.

You can select text in one window and search for it in another with
the \ptcom{Search for selection}\index{Search for selection} command.

Use \ptcom{Search for selection}\index{Search for selection}
whenever possible  to avoid retyping  search strings.
If you delete or change the  string you  searched for, and you need
to search  for the  original string  again, double
click on ``find''.  The first click selects the find
command and  the second  click accepts the default
string (the one you just searched for).

\section{Using the mouse}

It is  possible to  do a  lot of  editing with the
mouse without even using the keyboard.

Redefine the  top line to contain the commands you
use most frequently.

Use the  feature that  calls up  the \menu{TOPLIST}\index{TOPLIST}  menu
from inside  any window  by  pressing  the  middle
mouse button  (or both  buttons).  This is a fast,
easy, and  accurate way  to  get  to  exactly  the
window you  want.   Also, it  is an  easy  way  to
switch between two windows when there are three or
more open windows.

When giving yes or no responses try using the left
mouse button to say yes and the right mouse button
to say  no.  Remember that the mouse cursor has to
be on  the bottom  line of  the screen for this to
work.

For other  responses, remember that the left mouse
button acts  like the \key{Enter} key.  It will accept
the default  prompt or  end a  string.   The right
mouse button  will copy  the  selection  into  the
response string.

You can  verify replaces (and saves) with the left
mouse button  and say  no to  them with  the right
mouse button.   The  mouse cursor  must be  on the
bottom line of the display for this to work.

\chapter{Point without a mouse}

\Point\ was intended to be used with a mouse.  But a
person usually  does not  want to  change  editors
constantly, and  sometimes you work on PCs that do
not have  a mouse.    For  this  purpose  we  have
included a non-mouse interface.

If \Point\  were exclusively  a non-mouse  editor, a
custom interface  optimized for  that use would be
appropriate.    Since  we  are  thinking  of  only
occasional use of the non-mouse interface, we have
chosen to  make it  as close  as possible  to  the
mouse interface.

You will  use some  of the PC keys to simulate the
mouse.  Some keys move the mouse and some simulate
its buttons.  The mouse button keys simulate mouse
clicks rather than presses and releases.  Thus, it
is not  possible to  hold down  a simulated  mouse
button.   \Point\ has  been designed so that this is
not necessary.

\section{Moving the mouse cursor}

We use  the obvious  interface of  the four cursor
direction keys to move the mouse cursor one row or
column.  \key{Ctrl-left} arrow and \key{Ctrl-right} arrow move
one word  at a  time to  the left  and right.    A
``word'' for  these purposes  is a  sequence of non-
blank characters.

All these  commands move  the mouse  cursor  only.
They do not affect the selection.
You can use them to move the mouse cursor to the edges of a window,
outside a window and to the top line.

\section{Simulating the mouse buttons}

The \key{Gray+} key simuates the clicking (pressing and releasing)
of the left mouse button.
The \key{Gray-} key simuates the clicking (pressing and releasing)
of the right mouse button.

\section{Using mouse keys with a mouse}

The mouse  simulation keys  also work  if you  are
using a  mouse, but  they work  differently.   The
cursor movement keys move the mouse cursor and the
selection.   This is  normally what  you want when
you have  a mouse,  since it  saves the additional
keystrokes needed  to move the selection after the
mouse cursor  is moved.    Because  the  selection
moves, the  screen  must  be  redrawn  after  each
cursor  movement   command.     This  makes  these
commands somewhat slower.

\chapter{Point quick reference guide}

\section{Function keys}

\begin{tabular}{|l||p{1.4in}|p{1.4in}|p{1.4in}|} \hline
{\it Key} & {\it Unshifted} & {\it Shifted} & {\it Alted or Ctrled} \\ \hline \hline

\key{F1} & Delete (To Scrap) & Delete (Not To Scrap) &  \\ \hline

\key{F2} & Insert (From Scrap) &  &  \\ \hline

\key{F3} & Quit--Save All Files & Quit--No Saves & Quit--Ask About Saves \\ \hline

\key{F4} & Duplicate Text & Copy to Scrap & Extract text \\ \hline

\key{F5} & Find Selected Keyword & Find Keyword & Find Selected {\sc XTAG} \\ \hline

\key{F6} & Search For Selection & Search For String & Search Backwards \\ \hline

\key{F7} & Go Back To Last Place & Go To Selection & Go To Line Number \\ \hline

\key{F8} & Redo Last Edit & Find Matching Bracket & Find {\sc XTAG} (prompted) \\ \hline

\key{F9} & Undo Last Edit & Undo Multiple & Go To Selected Line Number \\ \hline

\key{F10} & Redraw The Screen & Load File--Selected File Name & New Window--Selected File Name \\ \hline
\end{tabular}

\section{Alt-letter and other keys}

\begin{tabbing}

xxxxxxxxxxxxxxxxxx \= xxxxx \kill

{\bf Key}   \> {\bf Command} \\

\key{Alt-a}       \> Insert ASCII character \\
\key{Alt-b}       \> Bottom the active window \\
\key{Alt-c}       \> Close the active window \\
\key{Alt-d}       \> Execute DOS command interpreter \\
\key{Alt-e}       \> Exchange with scrap \\
\key{Alt-g}       \> Goto line number \\
\key{Alt-h}       \> Get help \\
\key{Alt-i}       \> Print debugging information \\
\key{Alt-l}       \> Load a new file into the active window \\
\key{Alt-m}       \> Begin/end macro \\
\key{Alt-n}       \> New window -- create a window \\
\key{Alt-o}       \> Toggle insert/overtype mode \\
\key{Alt-p}       \> Play keyboard macro \\
\key{Alt-q}       \> Quit and ask about unsaved files \\
\key{Alt-r}       \> Replace \\
\key{Alt-s}       \> Save file in the active window \\
\key{Alt-t}       \> Toggle 43 line mode (EGA only) \\
\key{Alt-u}       \> Undo \\
\key{Alt-w}       \> Write file with a new name \\
\key{Alt-x}       \> Hide window \\
\key{Alt-z}       \> Zoom the active window \\
\key{PgUp}        \> Scroll up \\
\key{PgDn}        \> Scroll down \\
\key{Ctrl-Pgdn}   \> End of the file \\
\key{Ctrl-PgUp}   \> Beginning of the file \\
\key{Del}         \> Delete the selection to the scrap \\
\key{Ins}         \> Insert from scrap \\
\key{Backspace}   \> Delete the previous character \\
\key{Ctrl-Backspace} \> Delete the previous word \\
\key{Esc}         \> Cancel command \\
\key{Ctrl-Break}  \> Stop the current editor action \\
\key{Home}        \> Move the selection to the first (non-blank) character in the line \\
\key{End}         \> Move the selection to the last character in the line \\
\key{Grey +}      \> Simulate a click of the left mouse button \\
\key{Grey -}      \> Simulate a click of the right mouse button \\
\key{Cursor keys} \> Move the selection in that direction \\
\key{Ctrl-left}   \> Move the selection one word (blank-delimited) left \\
\key{Ctrl-right}  \> Move the selection one word (blank-delimited) right
\end{tabbing}

\section{Mouse command chart}

\begin{tabular}{|l||p{1.1in}|p{1.1in}|p{1.1in}|} \hline

{\it Cursor Position} & {\it Left Button} & {\it Middle Button} & {\it Right Button} \\ \hline \hline

Outside Window & --------- & {\sc \menu{TOPLIST}\index{TOPLIST}} menu &  --------- \\ \hline

Inside Window & Select text & {\sc \menu{TOPLIST}\index{TOPLIST}} menu & Extend selection \\ \hline

Any Corner & Top/bottom the window & Exchange the two top windows & Stretch window \\ \hline

Top Border & Make the window active & Split the window vertical & Move the window \\ \hline

Right Border & Search backwards & Split the window horizontal & Search for selection \\ \hline

Left Border & Scroll up & Thumb by line & Scroll down \\ \hline

Bottom Border & Scroll left & Thumb by column & Scroll right \\ \hline
\end{tabular}


\section{Command numbers by category}

\begin{tabbing}
xxxxxxxxx \= xxxxxxxxxxxx \kill
{\bf Number} \> {\bf Command}
\end{tabbing}

\begin{center} \em
Window Management
\end{center}

\begin{tabbing}
xxxxxxxxx \= xxxxxx \kill
7      New window \\
82     New window from selection \\
38     Hide window \\
17     Close window \\
72     Close and save \\
---    Split window \\
10     Redraw screen
\end{tabbing}

\begin{center} \em
Window Positioning
\end{center}

\begin{tabbing}
xxxxxxxxx \= xxxxxx \kill
12     Top window \\
29     Bottom window \\
28     Top/bottom window \\
11     Zoom window \\
13     Resize window \\
---    Stretch window \\
---    Move window \\
88     Exchange top windows
\end{tabbing}

\begin{center} \em
File Positioning in the Window
\end{center}

\begin{tabbing}
xxxxxxxxx \= xxxxxx \kill
15     Scroll down \\
14     Scroll up \\
---    Scroll left \\
---    Scroll right \\
---    Thumb vertical \\
---    Thumb horizontal \\
8      Beginning of file \\
78     Select beginning of file And Move Selection \\
9      End of file \\
16     Go to line number \\
84     Go to selected line number \\
56     Go back \\
58     Show selection
\end{tabbing}

\begin{center} \em
Searching and Replacing
\end{center}

\begin{tabbing}
xxxxxxxxx \= xxxxxx \kill
19     Search for string \\
27     Search for selection \\
66     Search backwards \\
20     Replace \\
83     Find matching bracket \\
91     Find tagged string \\
92     Find selected tag \\
93     Find keyword \\
94     Find selected keyword
\end{tabbing}

\begin{center} \em
Selecting Text
\end{center}

\begin{tabbing}
xxxxxxxxx \= xxxxxx \kill
26     Select text \\
39     Extend selection
\end{tabbing}

\begin{center} \em
Inserting Characters
\end{center}

\begin{tabbing}
xxxxxxxxx \= xxxxxx \kill
---    Insert character \\
23     Insert ASCII
\end{tabbing}

\begin{center} \em
Copying And Moving Text
\end{center}

\begin{tabbing}
xxxxxxxxx \= xxxxxx \kill
69     Copy \\
2      Duplicate \\
70     Move \\
3      Extract \\
57     Copy to scrap
\end{tabbing}

\begin{center} \em
Editing Text
\end{center}

\begin{tabbing}
xxxxxxxxx \= xxxxxx \kill
4      Delete \\
61     Delete, no scrap \\
55     Insert \\
62     Exchange with scrap \\
81     Change case \\
85     Fill lines
\end{tabbing}

\begin{center} \em
Redoing And Undoing Edits
\end{center}

\begin{tabbing}
xxxxxxxxx \= xxxxxx \kill
24     Redo last edit \\
25     Undo last edit \\
40     Undo multiple)
\end{tabbing}

\begin{center} \em
File Commands
\end{center}

\begin{tabbing}
xxxxxxxxx \= xxxxxx \kill
33     Load file \\
73     Load selected filename \\
54     Save file \\
47     Save unsaved files \\
18     Save as...
\end{tabbing}

\begin{center} \em
Quit Commands
\end{center}

\begin{tabbing}
xxxxxxxxx \= xxxxxx \kill
5      Quit-Ask about files \\
48     Quit-Save files \\
49     Quit-Discard edits
\end{tabbing}

\begin{center} \em
Executing DOS Commands
\end{center}

\begin{tabbing}
xxxxxxxxx \= xxxxxx \kill
30     Execute selection \\
32     \key{Escape} to a DOS command interpreter \\
90     Execute and replace selection \\
\end{tabbing}

\begin{center} \em
Macro Commands
\end{center}

\begin{tabbing}
xxxxxxxxx \= xxxxxx \kill
76     Begin/end macro \\
77     Play back macro
\end{tabbing}

\begin{center} \em
Change Modes
\end{center}

\begin{tabbing}
xxxxxxxxx \= xxxxxx \kill
22     Cancel \\
86     Toggle readOnly
\end{tabbing}

\begin{center} \em
Miscellaneous Commands
\end{center}

\begin{tabbing}
xxxxxxxxx \= xxxxxx \kill
87     Cycle colors \\
6      Set the value of the ``debug'' variable \\
21     Display \Point\ information \\
64     Invoke help \\
31     Do nothing
\end{tabbing}

\begin{center} \em
Invoke Menu Commands
\end{center}

\begin{tabbing}
xxxxxxxxx \= xxxxxx \kill
50     Invoke user menu 1 \\
51     Invoke user menu 2 \\
52     Invoke user menu 3 \\
60     Invoke user menu 4 \\
65     Invoke user menu 5 \\
67     Invoke user menu 6 \\
79     Invoke user menu 7 \\
80     Invoke user menu 8 \\
96     Invoke user menu 9 \\
97     Invoke user menu 10 \\
98     Invoke user menu 11 \\
99     Invoke user menu 12 \\
100    Invoke user menu 13 \\
101    Invoke user menu 14 \\
102    Invoke user menu 15 \\
103    Invoke user menu 16 \\
53     Invoke the \menu{TOPLIST}\index{TOPLIST} menu \\
45     Mouse motion command 1 \\
46     Mouse motion command 2
\end{tabbing}

\begin{center} \em
Keyboard Cursor Movement Commands
\end{center}

\begin{tabbing}
xxxxxxxxx \= xxxxxx \kill
34     Move the cursor up \\
35     Move the cursor down \\
36     Move the cursor left \\
37     Move the cursor right \\
41     Move to the first (non-blank) character of the line \\
42     Move to the last character of the line \\
43     Simulate clicking the left mouse button \\
44     Simulate clicking the right mouse button \\
74     Move the cursor one word (blank delimited) left \\
75     Move the cursor one word (blank delimited) right
\end{tabbing}

\begin{center} \em
Option Setting Commands
\end{center}

\begin{tabbing}
xxxxxxxxx \= xxxxxx \kill
105     Set the \option{autoSaveInterval} option \\
106     Set the \option{autoScrollRate} option \\
107     Set the \option{autoIndent} option \\
108     Set the \option{borderColors} option \\
109     Set the \option{centerMenus} option \\
110     Set the \option{doubleClickDelay} option \\
111     Set the \option{filePattern} option \\
112     Set the \option{fileSort} option \\
113     Set the \option{findWholeWords} option \\
114     Set the \option{fsDirs} option \\
115     Set the \option{fsMenu} option \\
116     Set the \option{fsPatterns} option \\
117     Set the \option{helpMode} option \\
118     Set the \option{43lines} option \\
119     Set the \option{ignoreCase} option \\
121     Set the \option{linesOverFind} option \\
122     Set the \option{makeBaks} option \\
124     Set the \option{msgColors} option \\
128     Set the \option{pathNames} option \\
129     Set the \option{overType} option \\
130     Set the \option{readOnly} option \\
131     Set the \option{redefine} option \\
132     Set the \option{reSearch} option \\
133     Set the \option{rightMargin} option \\
134     Set the \option{scrollDelay} option \\
135     Set the \option{scrollRate} option \\
136     Set the \option{searchMode} option \\
137     Set the \option{smoothScroll} option \\
138     Set the \option{tabWidth} option \\
140     Set the \option{topOnFind} option \\
141     Set the \option{tagPattern} option \\
142     Set the \option{tagMarker} option \\
143     Set the \option{textColors} option \\
145     Set the \option{unixMode} option \\
146     Set the \option{videoMode} option \\
\end{tabbing}

\subsection{Simulated mouse command table}

\begin{tabbing}

xxxxxxxxxx \= xxxxxxxxxx \= xxxx \kill

{\em Key}     \> {\em Mouse Function}: \\
\> {\em Next key} \> {\em Sub-function} \\
\key{Left}    \> Move mouse cursor left 1 column. \\
\key{Ctrl-Left} \> Move mouse cursor left 1 word. \\
\key{Right}   \> Move mouse cursor right 1 column. \\
\key{Ctrl-Right} \> Move mouse cursor right 1 word. \\
\key{Up}      \> Move mouse cursor up 1 row. \\
\key{Down}    \> Move mouse cursor down 1 row. \\
\key{Home}    \> Move the mouse cursor to the first (non-blank) character of the line \\
\key{End}    \> Move the mouse cursor to the last character of the line \\
\key{Gray+}   \> Simulate a click of the left mouse button \\
\key{Gray-}   \> Simulate a click of the right mouse button

\end{tabbing}

\chapter{Point size limitations}

\begin{itemize}

\item Maximum number of windows --- 255 in DOS 3.x; 20 in DOS 2.x

\item Maximum number of open files --- 255 in DOS 3.x; 20 in DOS 2.x

\item Maximum number of buffers --- 300

\item Minimum window size --- 3 rows by 10 columns

\item Maximum line size --- no limit

\item Maximum input string --- 100 characters

\item Maximum search string --- 50 characters

\item Maximum replace string --- 50 characters

\item Maximum number of menu characters --- 4000 characters

\item Maximum number of undos --- 100

\end{itemize}

\chapter{Point development history and acknowledgments}

The main inspiration for developing \Point\ came when I spent the
1982-1983 academic year on sabbatical at Xerox System Development
Division in El Segundo, California.
There I learned of the ease and simplicity of editing with a mouse.
I had been using vi as a text editor for several years.
After a while I realized that the Xerox editor I was using
was 80\% to 90\% as powerful as vi while only using about 10 commands
(while vi has over a hundred).
Once you learned to select text, scroll and use the
copy, move and delete keys you already had a powerful editor.

At Xerox I worked with my good friend Gael Curry from whom
I have learned many things well worth knowing.
I also met at Xerox Bob Purvy and Larry Baer who both helped
me learn the spirit of how things were done at Xerox.
I am happy to count them among my friends.

After my sabbatical, I got an XT and started to learn how to use it.
My Unix experience inspired my to first create a cshell like command
interpreter after finding the MS/DOS one quite inadequate.
Then I started working on \Point.
\Point\ evolved over several years with the help of a
number of beta testers.
Gary Vrooman was invaluable in the first year and much of the
look and many of the useful features of \Point\ are due to
his suggestions.
Later I got to know John Ciccarelli, first as a beta tester
and then as a friend.
He also offered bug reports and helpful suggestions too numerous to count.
The final version of \Point\ benefited greatly from his useful
and clever suggestions.

\Point\ was originally written in Lattice C using Microsoft Word
as a text editor.\footnote{I was so enamored with mouse editing
that I was willing to put up with using a word processor
(with no line numbers!) as a text editor.}
Later I needed far pointers and so I switched to Microsoft C
which I am still using.\footnote{Although Lattice C later
added far pointers.}
Naturally I switched to using \Point\ as a text editor
as soon as I had a first version that was did not crash much.

I am indebted to Guy Tiphane, Pierluigi Zapacosta
and Giacomo Marini of Logitech, Inc. for believing in \Point\
and distributing it with the Logitech mouse and Logitech Modula-2.
I enjoyed working with everyone I met at Logitech particularly
Enrica D'Ettore who was the \Point\ liaison for some time.

\chapter{Index}
